using System.Collections.Generic;
using Drill.Extensibility;

namespace Drill.Core
{
	/// <summary>
	/// Interface implemented by classes that use one or more DrillBits  
	/// to resolve dependency types, locate services or obtain object instances 
	/// from containers, locators, factories, contexts or other sources.
	/// </summary>
	/// <remarks>
	/// Implementers can implement one of two public constructor signatures:
	/// public MyDrillChuckDependencyResolver() or public MyDrillChuckDependencyResolver(IDependencyResolverInitContext context).
	/// The constructor signature with the constructor context argument is the recommended constructor signature.
	/// </remarks>
	public interface IDrillChuckDependencyResolver : IDependencyResolver
	{
		/// <summary>
		/// Gets the underlying <see cref="IDrillBit"/> instances.
		/// </summary>
		/// <value>The underlying <see cref="IDrillBit"/> instances.</value>
		IList<IDrillBit> DrillBits { get; }
	}
}